#ifndef SUBESTADODEREALIZACIONDEPARTIDA_H_
#define SUBESTADODEREALIZACIONDEPARTIDA_H_

#include "Jugador.h"
#include "Territorio.h"
#include "Ataque.h"
#include "InvalidStateException.h"
#include <string>
using namespace std;

class SubestadoDeRealizacionDePartida
{
public:
	
	virtual void reforzarEjercitos(Jugador* jugador);
	
	/* @throws InvalidStateException*/
	virtual void colocarEjercitos(Jugador* jugador, Territorio* territorio, unsigned int cantidadDeEjercitos);
	
	/* @throws InvalidStateException*/
	virtual void realizarAtaque(Ataque* ataque);
	
	/* @throws InvalidStateException*/
	virtual void tirarDados(Jugador* jugador, unsigned int cantidadDeDados);
	
	/* @throws InvalidStateException*/
	virtual void moverEjercitos(Jugador* jugador, Territorio* origen, Territorio* destino, unsigned int cantidadDeEjercitos);
	
	/* @throws InvalidStateException*/
	virtual void pasar(Jugador* jugador);
	
	virtual string toString();
};

#endif /*SUBESTADODEREALIZACIONDEPARTIDA_H_*/
